package com.daji.callback_and_lambda.callback_async;

public class Client implements CSCallBack {

    private Server server;

    public Client(Server server) {
        this.server = server;
    }

    public void sendMsg(final String msg) throws InterruptedException {
        System.out.println("客户端：发送的消息为：" + msg);
        new Thread(new Runnable() {
            @Override
            public void run() {
                /*
                    当在一个类的内部类中，如果需要访问外部类的方法或者成员域的时候，如果使用  this.成员域(与 内部类.this.成员域 没有分别) 调用的显然是内部类的域 ，
                    如果我们想要访问外部类的域的时候，就要必须使用  外部类.this.成员域
                */
                server.getClientMsg(Client.this,msg);
            }
        }).start();
        System.out.println("客户端：异步发送成功");
        Thread.sleep(1 * 500);
        System.out.println("继续跑下面的流程");
        Thread.sleep(1 * 500);
        System.out.println("继续跑下面的流程");
        Thread.sleep(1 * 500);
        System.out.println("跑完了！");
    }

    @Override
    public void process(String status) {
        System.out.println("客户端：服务端回调状态为：" + status);
    }
}